package com.aslam.zeshan.syncnotes.Database;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.database.sqlite.SQLiteOpenHelper;
import com.aslam.zeshan.syncnotes.Note;
import com.aslam.zeshan.syncnotes.Util.SettingsManager;
import java.util.ArrayList;
import java.util.List;
public class NotesDatabase extends SQLiteOpenHelper {
public Context con;
private static final int DATABASE_VERSION = 1;
private static final String DATABASE_NAME = "Notes";
private static final String TABLE_CONTACTS = "NotesList";
private static final String KEY_ID = "ID";
private static final String KEY_OBJECT = "objectID";
private static final String KEY_NAME = "title";
private static final String KEY_EMAIL = "body";
public NotesDatabase(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
this.con = context;
}
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_CONTACTS + "("
+ KEY_ID + " STRING PRIMARY KEY," + KEY_OBJECT + " TEXT," + KEY_NAME + " TEXT," + KEY_EMAIL + " TEXT)";
db.execSQL(CREATE_CONTACTS_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
public void addNote(String ID, String objectID, String title, String body) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_ID, ID);
values.put(KEY_OBJECT, objectID);
values.put(KEY_NAME, title);
values.put(KEY_EMAIL, body);
db.insert(TABLE_CONTACTS, null, values);
db.close();
}
public void deleteNote(String ID) {
SQLiteDatabase db = this.getWritableDatabase();
db.delete(TABLE_CONTACTS, "ID = ?", new String[]{ID});
db.close();
}
public void update(String ID, String title, String body) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_NAME, title);
values.put(KEY_EMAIL, body);
db.update(TABLE_CONTACTS, values, "ID=?", new String[]{ID});
db.close();
}
public List<Note> getNotes() {
List<Note> map = new ArrayList<>();
try {
String selectQuery = "SELECT * FROM " + TABLE_CONTACTS;
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
if (cursor != null && cursor.moveToFirst()) {
while (!cursor.isAfterLast()) {
String ID = cursor.getString(cursor.getColumnIndex(KEY_ID));
String objectID = cursor.getString(cursor.getColumnIndex(KEY_OBJECT));
String title = cursor.getString(cursor.getColumnIndex(KEY_NAME));
String body = cursor.getString(cursor.getColumnIndex(KEY_EMAIL));
Note note = new Note();
note.setID(ID);
note.setObjectId(objectID);
note.setTitle(title);
note.setBody(body);
note.setOwner(new SettingsManager(con).getString("ID"));
map.add(note);
cursor.moveToNext();
}
}
cursor.close();
db.close();
} catch (SQLiteException e) {
e.printStackTrace();
return map;
}
return map;
}
public Note getNoteByID(String ID) {
Note note = null;
try {
String selectQuery = "SELECT * FROM " + TABLE_CONTACTS;
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
if (cursor != null && cursor.moveToFirst()) {
while (!cursor.isAfterLast()) {
String ID1 = cursor.getString(cursor.getColumnIndex(KEY_ID));
String objectID = cursor.getString(cursor.getColumnIndex(KEY_OBJECT));
String title = cursor.getString(cursor.getColumnIndex(KEY_NAME));
String body = cursor.getString(cursor.getColumnIndex(KEY_EMAIL));
if (ID.equals(ID1)) {
note = new Note();
note.setID(ID);
note.setObjectId(objectID);
note.setTitle(title);
note.setBody(body);
note.setOwner(new SettingsManager(con).getString("ID"));
break;
}
cursor.moveToNext();
}
}
cursor.close();
db.close();
} catch (SQLiteException e) {
e.printStackTrace();
}
return note;
}
public int lastID() {
String selectQuery = "SELECT * FROM " + TABLE_CONTACTS;
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
cursor.moveToLast();
int ID = cursor.getInt(cursor.getColumnIndex("ID"));
cursor.close();
db.close();
return ID;
}
public boolean contains(String ID) {
String selectQuery = "SELECT * FROM " + TABLE_CONTACTS + " WHERE " + KEY_ID + " = ?";
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(selectQuery, new String[]{ID});
if (cursor.getCount() > 0) {
cursor.close();
return true;
}
cursor.close();
return false;
}
}